// pull out /GeneralSearchResponse/categories/category/items/product tags
// the rest we don't care about.

var sax = require('../lib/sax.js')
var fs = require('fs')
var path = require('path')
var xmlFile = path.resolve(__dirname, 'shopping.xml')
var util = require('util')
var http = require('http')

fs.readFile(xmlFile, function (er, d) {
  http
    .createServer(function (req, res) {
      if (er) throw er
      var xmlstr = d.toString('utf8')

      var parser = sax.parser(true)
      var products = []
      var product = null
      var currentTag = null

      parser.onclosetag = function (tagName) {
        if (tagName === 'product') {
          products.push(product)
          currentTag = product = null
          return
        }
        if (currentTag && currentTag.parent) {
          var p = currentTag.parent
          delete currentTag.parent
          currentTag = p
        }
      }

      parser.onopentag = function (tag) {
        if (tag.name !== 'product' && !product) return
        if (tag.name === 'product') {
          product = tag
        }
        tag.parent = currentTag
        tag.children = []
        tag.parent && tag.parent.children.push(tag)
        currentTag = tag
      }

      parser.ontext = function (text) {
        if (currentTag) currentTag.children.push(text)
      }

      parser.onend = function () {
        var out = util.inspect(products, false, 3, true)
        res.writeHead(200, { 'content-type': 'application/json' })
        res.end('{"ok":true}')
        // res.end(JSON.stringify(products))
      }

      parser.write(xmlstr).end()
    })
    .listen(1337)
})
